<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>AJAX </title>
    <style>
        #selAnswers div{
            border: 1px solid black;
            padding:10px;
            margin:5px;
            display: inline-block;
        }
        .cat{font-size: 0.7em;}
        .que{font-size: 1.5em;}
    </style>
</head>
<body>
    <h1>AJAX</h1>
    <div>Score :<span id="score">Correct 0 Wrong 0</span></div>
    <div id="output"></div>
    <div id="selAnswers"></div>
    <button type="button" id="btn">Click Me for More</button>
    <script>
        var btn = document.getElementById('btn');
        btn.addEventListener('click', nextItem)
        var answers = {
            'correct': 0
            , 'wrong': 0
        }
        var output = document.getElementById('output');
        var selAnswer = document.getElementById('selAnswers')
        function nextItem() {
            btn.style.display = 'none'
            var url = 'https://opentdb.com/api.php?amount=1';
            var html = ' '
            requestAJAX(url, function (data) {
                console.log(data.results[0]);
                var obj = data.results[0];
                html += '<div><div class="cat">' + obj.category + '</div>';
                html += '<div class="que">' + obj.question + '</div>';
                html += '</div>'
                output.innerHTML = html;
                questionBuilder(obj.correct_answer,obj.incorrect_answers)
            })
        }
        function correctAnswerIs(){
            var els = document.querySelectorAll('#selAnswers div')
            for(x=0;x<els.length;x++){
                if(els[x].getAttribute('data-cor')=="true"){
                    return els[x].innerText
                }
            }
            
        }
 
        function sendAnswer(){
            var res = event.target.getAttribute('data-cor');
            var corectAnswerValue = correctAnswerIs();
            btn.style.display = 'block'
            if(res=='true'){
                answers.correct ++;
                selAnswer.innerHTML = 'Correct!!! '+corectAnswerValue
            
            }else{
                answers.wrong ++;
                selAnswer.innerHTML = 'Wrong it was  '+corectAnswerValue
            }
            document.getElementById('score').innerHTML = 'Correct '+ answers.correct+' Wrong '+answers.wrong
        }
        
        
        function questionBuilder(cor,incor){
            var holder = incor;
            holder.push(cor);
            holder.sort();
            
            selAnswer.innerHTML = '';
            for(var x=0;x<holder.length;x++){
                var el = document.createElement('div')
                var checker = holder[x] == cor ? true :false;
                el.setAttribute('data-cor',checker);
                el.innerHTML= holder[x];
                el.addEventListener('click',sendAnswer)
                selAnswer.appendChild(el);
            }
        }
        
        
        function requestAJAX(url, callback) {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    callback(JSON.parse(xhr.responseText))
                }
            }
            xhr.open('GET', url, true)
            xhr.send();
        }
    </script>
</body>
</html>